package com.xbongbong.coolapp.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppCloseCardDTO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppSendRemindTopCardDTO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppWorkReportTopCardDTO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppWorkflowCardDTO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppSendCardDTO;
import com.xbongbong.pro.coolapp.pojo.dto.CoolAppUpdateCardDTO;
import com.xbongbong.pro.menu.pojo.dto.MenuInitDTO;

/**
 * @description: 酷应用首页
 * @author zhushuainan
 * @date 2022/06/13 10:29:30
 */

public interface CoolAppCardService {
    /**
     * 发送互动卡片
     *
     * @param coolAppSendCardDTO 入参
     * @return
     * @throws XbbException
     */
    BaseVO sendCard(CoolAppSendCardDTO coolAppSendCardDTO)  throws XbbException;

    BaseVO sendWorkReportTopCard(CoolAppWorkReportTopCardDTO coolAppWorkReportTopCardDTO) throws XbbException;

    /**
     * 更新互动卡片
     *
     * @param coolAppUpdateCardDTO
     * @return
     * @throws XbbException
     */
    BaseVO updateCard(CoolAppUpdateCardDTO coolAppUpdateCardDTO) throws XbbException;

    /**
     * 发送审批卡片
     *
     * @param coolAppWorkflowCardDTO 入参
     * @return
     * @throws XbbException
     */
    BaseVO sendProcessCard(CoolAppWorkflowCardDTO coolAppWorkflowCardDTO) throws XbbException;

    /**
     * 更新审批卡片
     *
     * @param coolAppWorkflowCardDTO 入参
     * @return
     * @throws XbbException
     */
    BaseVO updateProcessCard(CoolAppWorkflowCardDTO coolAppWorkflowCardDTO) throws XbbException;

    /**
     * 发送跟进提醒卡片
     *
     * @param coolAppSendRemindTopCardDTO
     * @return
     * @throws XbbException
     */
    BaseVO sendCommunicateTopCard(CoolAppSendRemindTopCardDTO coolAppSendRemindTopCardDTO) throws XbbException;


    /**
     * 发送访客计划吊顶卡片
     *
     * @param coolAppSendRemindTopCardDTO
     * @return
     * @throws XbbException
     */
    BaseVO sendCommunicatePlanTopCard(CoolAppSendRemindTopCardDTO coolAppSendRemindTopCardDTO) throws XbbException;
    /**
     * 发送工作流卡片
     *
     * @param coolAppWorkflowCardDTO 入参
     * @return
     * @throws XbbException
     */
    BaseVO sendWorkflowCard(CoolAppWorkflowCardDTO coolAppWorkflowCardDTO) throws XbbException;

    /**
     * 更新工作流卡片
     *
     * @param coolAppWorkflowCardDTO 入参
     * @return
     * @throws XbbException
     */
    BaseVO updateWorkflowCard(CoolAppWorkflowCardDTO coolAppWorkflowCardDTO) throws XbbException;

    /**
     * 关闭吊顶卡片
     *
     * @param coolAppCloseCardDTO
     * @return
     * @throws XbbException
     */
    BaseVO closeTopCard(CoolAppCloseCardDTO coolAppCloseCardDTO) throws XbbException;


    BaseVO initCoolAppBundle(MenuInitDTO menuInitDTO) throws XbbException;

}
